package com.loan.log.logging;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @author shiguang on 2022/6/22 15:26
 */
public class BaseLoggingContext implements Map<String, String> {

    public static final String KEY_RESPONSE_TIME = "responseTime";

    public static final String KEY_BO_NO = "OrderNo";

    public static final String KEY_MOBILE = "phoneNo";

    public static final String KEY_ID_CARD_NO = "IdNo";

    public static final String KEY_ACCOUNT_NO = "Acctid";

    public static final String KEY_CARD_NO = "CardNo";

    public static final String KEY_NAME = "Name";

    public static final String KEY_CARD_TYPE = "CardType";

    public static final String KEY_PRODUCT_NO = "ProductNo";

    public static final String KEY_SEQ_NO = "SeqNo";

    public static final String KEY_SEQ_ID = "SEQ-ID";

    public static final String KEY_BODY_ID = "BASY-ID";

    private Map<String, String> internal = new HashMap();

    public BaseLoggingContext() {
    }

    public static String getSeqNo() {
        return KEY_SEQ_NO;
    }

    public static String getSeqId() {
        return KEY_SEQ_ID;
    }

    public static String getBodyId() {
        return KEY_BODY_ID;
    }

    public String setCardNo(String CardNo) {
        return this.put(KEY_CARD_NO, CardNo);
    }

    public String getCardNo() {
        return this.get(KEY_CARD_NO);
    }

    public String setName(String Name) {
        return this.put(KEY_NAME, Name);
    }

    public String getName() {
        return this.get(KEY_NAME);
    }

    public String setCardType(String CardType) {
        return this.put(KEY_CARD_TYPE, CardType);
    }

    public String getCardType() {
        return this.get(KEY_CARD_TYPE);
    }

    public String setProductNo(String ProductNo) {
        return this.put(KEY_PRODUCT_NO, ProductNo);
    }

    public String getProductNo() {
        return this.get(KEY_PRODUCT_NO);
    }

    public String setResponseTime(String responseTime) {
        return this.put(KEY_RESPONSE_TIME, responseTime);
    }

    public String getResponseTime() {
        return this.get(KEY_RESPONSE_TIME);
    }

    public String getBoNo() {
        return this.get(KEY_BO_NO);
    }

    public String setBoNo(String boNo) {
        return this.put(KEY_BO_NO, boNo);
    }

    public String getMobile() {
        return this.get(KEY_MOBILE);
    }

    public String setMobile(String mobile) {
        return this.put(KEY_MOBILE, mobile);
    }

    public String getIdCardNo() {
        return this.get(KEY_ID_CARD_NO);
    }

    public String setIdCardNo(String idCardNo) {
        return this.put(KEY_ID_CARD_NO, idCardNo);
    }

    public String getAccountNo() {
        return this.get(KEY_ACCOUNT_NO);
    }

    public String setAccountNo(String accountNo) {
        return this.put(KEY_ACCOUNT_NO, accountNo);
    }

    public String setSeqNo(String seqNo) {
        return this.put(KEY_SEQ_NO, seqNo);
    }

    public String setSeqId(String seqId) {
        return this.put(KEY_SEQ_ID, seqId);
    }

    public String setBodyId(String bodyId) {
        return this.put(KEY_BODY_ID, bodyId);
    }

    @Override
    public int size() {
        return this.internal.size();
    }

    @Override
    public boolean isEmpty() {
        return this.internal.isEmpty();
    }

    @Override
    public boolean containsKey(Object key) {
        return this.internal.containsKey(key);
    }

    @Override
    public boolean containsValue(Object value) {
        return this.internal.containsValue(value);
    }

    @Override
    public String get(Object key) {
        return (String) this.internal.get(key);
    }

    @Override
    public String put(String key, String value) {
        return (String) this.internal.put(key, value);
    }

    @Override
    public String remove(Object key) {
        return (String) this.internal.remove(key);
    }

    @Override
    public void putAll(Map<? extends String, ? extends String> m) {
        this.internal.putAll(m);
    }

    @Override
    public void clear() {
        this.internal.clear();
    }

    @Override
    public Set<String> keySet() {
        return this.internal.keySet();
    }

    @Override
    public Collection<String> values() {
        return this.internal.values();
    }

    @Override
    public Set<Entry<String, String>> entrySet() {
        return this.internal.entrySet();
    }
}
